package com.dragon.modules.yuegou.entity.wallet;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.CurrencyType;
import com.dragon.modules.yuegou.enums.wallet.MemberTradeType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 会员交易（在会员视角的交易流水）实体类<br>
 * 对应的表为：walt_member_trade<br>
 * 
 * @author pbuilder generated
 * @date 2019-10-11 19:40:05
 * @company sgy
 * @version 2.0
 */
@TableName("walt_member_trade")
@ApiModel(description = "会员交易（在会员视角的交易流水）")
public class MemberTradeEntity {

    /** 交易ID（与分表中的ID保持一致） */
	@ApiModelProperty("交易ID（与分表中的ID保持一致）")
	protected String id;

    /** 会员ID */
	@ApiModelProperty("会员ID")
	protected String memberId;

    /** 会员钱包ID */
	@ApiModelProperty("会员钱包ID")
	protected String memberWalletId;

    /** 商圈ID（商户所在的商圈ID) */
	@ApiModelProperty("商圈ID（商户所在的商圈ID)")
	protected String busdId;

    /** 商户ID，与商户交易时存在 */
	@ApiModelProperty("商户ID，与商户交易时存在")
	protected String merchantId;

    /** 商户名称 */
	@ApiModelProperty("商户名称")
	protected String merchantName;

    /** 悦卡ID，会员使用悦卡交易时存在 */
	@ApiModelProperty("悦卡ID，会员使用悦卡交易时存在")
	protected String memberCardId;

    /** 订单号，订单支付时存在 */
	@ApiModelProperty("订单号，订单支付时存在")
	protected String orderNo;

    /** [全局枚举]币种：0-悦币-YUE_COIN、1-福利卡-YUE_CARD_GRANTED、2-预付卡-YUE_CARD_BOUGHT、3-微信-WECHAT、4-支付宝-ALIPAY */
	@ApiModelProperty("[全局枚举]币种：0-悦币-YUE_COIN、1-福利卡-YUE_CARD_GRANTED、2-预付卡-YUE_CARD_BOUGHT、3-微信-WECHAT、4-支付宝-ALIPAY")
	protected CurrencyType currencyType;

    /** [枚举]类型：0-充值悦币-RECHARGE_YUE_COIN、1-购买预付卡-BUY_YUE_CARD、2-发放福利卡-GRANT_YUE_CARD、3-订单支付-ORDER_PAY、4-订单退款-ORDER_REFUND、5-悦卡退卡-CARD_REFUND */
	@ApiModelProperty("[枚举]类型：0-充值悦币-RECHARGE_YUE_COIN、1-购买预付卡-BUY_YUE_CARD、2-发放福利卡-GRANT_YUE_CARD、3-订单支付-ORDER_PAY、4-订单退款-ORDER_REFUND、5-悦卡退卡-CARD_REFUND")
	protected MemberTradeType type;

    /** 交易金额（正数表示收入，负数表示支出） */
	@ApiModelProperty("交易金额（正数表示收入，负数表示支出）")
	protected BigDecimal amount;

    /** 交易前余额 */
	@ApiModelProperty("交易前余额")
	protected BigDecimal amountBefore;

    /** 交易后余额 */
	@ApiModelProperty("交易后余额")
	protected BigDecimal amountAfter;

    /** 交易备注 */
	@ApiModelProperty("交易备注")
	protected String remarks;

    /** 交易时间 */
	@ApiModelProperty("交易时间")
	protected LocalDateTime createdTime;

    /** 企业id */
	@ApiModelProperty("企业id")
	protected String companyId;

    /** 企业名称 */
	@ApiModelProperty("企业名称")
	protected String companyName;

    /** 第三方商户号，与第三方商户号发生交易时存在，示例：微信商户号 wx_1501780391，微信服务商商户号 wx_1505108951_1533645041，支付宝商户号：ali_2088331430099501 */
	@ApiModelProperty("第三方商户号，与第三方商户号发生交易时存在，示例：微信商户号 wx_1501780391，微信服务商商户号 wx_1505108951_1533645041，支付宝商户号：ali_2088331430099501")
	protected String thirdMchId;

	/**
	 * 构造一个空会员交易（在会员视角的交易流水）实体对象
	 */
	public MemberTradeEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个会员交易（在会员视角的交易流水）实体对象
	 * 
	 * @param other 其它对象
	 */
	public MemberTradeEntity(MemberTradeEntity other){
		super();
     	this.id = other.id;
     	this.memberId = other.memberId;
     	this.memberWalletId = other.memberWalletId;
     	this.busdId = other.busdId;
     	this.merchantId = other.merchantId;
     	this.merchantName = other.merchantName;
     	this.memberCardId = other.memberCardId;
     	this.orderNo = other.orderNo;
     	this.currencyType = other.currencyType;
     	this.type = other.type;
     	this.amount = other.amount;
     	this.amountBefore = other.amountBefore;
     	this.amountAfter = other.amountAfter;
     	this.remarks = other.remarks;
     	this.createdTime = other.createdTime;
     	this.companyId = other.companyId;
     	this.companyName = other.companyName;
     	this.thirdMchId = other.thirdMchId;
	}


	/**
	 * 获取交易ID（与分表中的ID保持一致）
	 * 
	 * @return id 交易ID（与分表中的ID保持一致）
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置交易ID（与分表中的ID保持一致）
	 * 
	 * @param id 交易ID（与分表中的ID保持一致）
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取会员ID
	 * 
	 * @return memberId 会员ID
	 */
	public String getMemberId() {
		return memberId;
	}
  	
	/**
	 * 设置会员ID
	 * 
	 * @param memberId 会员ID
	 */
	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}

	/**
	 * 获取会员钱包ID
	 * 
	 * @return memberWalletId 会员钱包ID
	 */
	public String getMemberWalletId() {
		return memberWalletId;
	}
  	
	/**
	 * 设置会员钱包ID
	 * 
	 * @param memberWalletId 会员钱包ID
	 */
	public void setMemberWalletId(String memberWalletId) {
		this.memberWalletId = memberWalletId;
	}

	/**
	 * 获取商圈ID（商户所在的商圈ID)
	 * 
	 * @return busdId 商圈ID（商户所在的商圈ID)
	 */
	public String getBusdId() {
		return busdId;
	}
  	
	/**
	 * 设置商圈ID（商户所在的商圈ID)
	 * 
	 * @param busdId 商圈ID（商户所在的商圈ID)
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取商户ID，与商户交易时存在
	 * 
	 * @return merchantId 商户ID，与商户交易时存在
	 */
	public String getMerchantId() {
		return merchantId;
	}
  	
	/**
	 * 设置商户ID，与商户交易时存在
	 * 
	 * @param merchantId 商户ID，与商户交易时存在
	 */
	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取商户名称
	 * 
	 * @return merchantName 商户名称
	 */
	public String getMerchantName() {
		return merchantName;
	}
  	
	/**
	 * 设置商户名称
	 * 
	 * @param merchantName 商户名称
	 */
	public void setMerchantName(String merchantName) {
		this.merchantName = merchantName;
	}

	/**
	 * 获取悦卡ID，会员使用悦卡交易时存在
	 * 
	 * @return memberCardId 悦卡ID，会员使用悦卡交易时存在
	 */
	public String getMemberCardId() {
		return memberCardId;
	}
  	
	/**
	 * 设置悦卡ID，会员使用悦卡交易时存在
	 * 
	 * @param memberCardId 悦卡ID，会员使用悦卡交易时存在
	 */
	public void setMemberCardId(String memberCardId) {
		this.memberCardId = memberCardId;
	}

	/**
	 * 获取订单号，订单支付时存在
	 * 
	 * @return orderNo 订单号，订单支付时存在
	 */
	public String getOrderNo() {
		return orderNo;
	}
  	
	/**
	 * 设置订单号，订单支付时存在
	 * 
	 * @param orderNo 订单号，订单支付时存在
	 */
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	/**
	 * 获取[全局枚举]币种：0-悦币-YUE_COIN、1-福利卡-YUE_CARD_GRANTED、2-预付卡-YUE_CARD_BOUGHT、3-微信-WECHAT、4-支付宝-ALIPAY
	 * 
	 * @return currencyType [全局枚举]币种：0-悦币-YUE_COIN、1-福利卡-YUE_CARD_GRANTED、2-预付卡-YUE_CARD_BOUGHT、3-微信-WECHAT、4-支付宝-ALIPAY
	 */
	public CurrencyType getCurrencyType() {
		return currencyType;
	}
  	
	/**
	 * 设置[全局枚举]币种：0-悦币-YUE_COIN、1-福利卡-YUE_CARD_GRANTED、2-预付卡-YUE_CARD_BOUGHT、3-微信-WECHAT、4-支付宝-ALIPAY
	 * 
	 * @param currencyType [全局枚举]币种：0-悦币-YUE_COIN、1-福利卡-YUE_CARD_GRANTED、2-预付卡-YUE_CARD_BOUGHT、3-微信-WECHAT、4-支付宝-ALIPAY
	 */
	public void setCurrencyType(CurrencyType currencyType) {
		this.currencyType = currencyType;
	}

	/**
	 * 获取[枚举]类型：0-充值悦币-RECHARGE_YUE_COIN、1-购买预付卡-BUY_YUE_CARD、2-发放福利卡-GRANT_YUE_CARD、3-订单支付-ORDER_PAY、4-订单退款-ORDER_REFUND、5-悦卡退卡-CARD_REFUND
	 * 
	 * @return type [枚举]类型：0-充值悦币-RECHARGE_YUE_COIN、1-购买预付卡-BUY_YUE_CARD、2-发放福利卡-GRANT_YUE_CARD、3-订单支付-ORDER_PAY、4-订单退款-ORDER_REFUND、5-悦卡退卡-CARD_REFUND
	 */
	public MemberTradeType getType() {
		return type;
	}
  	
	/**
	 * 设置[枚举]类型：0-充值悦币-RECHARGE_YUE_COIN、1-购买预付卡-BUY_YUE_CARD、2-发放福利卡-GRANT_YUE_CARD、3-订单支付-ORDER_PAY、4-订单退款-ORDER_REFUND、5-悦卡退卡-CARD_REFUND
	 * 
	 * @param type [枚举]类型：0-充值悦币-RECHARGE_YUE_COIN、1-购买预付卡-BUY_YUE_CARD、2-发放福利卡-GRANT_YUE_CARD、3-订单支付-ORDER_PAY、4-订单退款-ORDER_REFUND、5-悦卡退卡-CARD_REFUND
	 */
	public void setType(MemberTradeType type) {
		this.type = type;
	}

	/**
	 * 获取交易金额（正数表示收入，负数表示支出）
	 * 
	 * @return amount 交易金额（正数表示收入，负数表示支出）
	 */
	public BigDecimal getAmount() {
		return amount;
	}
  	
	/**
	 * 设置交易金额（正数表示收入，负数表示支出）
	 * 
	 * @param amount 交易金额（正数表示收入，负数表示支出）
	 */
	public void setAmount(BigDecimal amount) {
		this.amount = amount;
	}

	/**
	 * 获取交易前余额
	 * 
	 * @return amountBefore 交易前余额
	 */
	public BigDecimal getAmountBefore() {
		return amountBefore;
	}
  	
	/**
	 * 设置交易前余额
	 * 
	 * @param amountBefore 交易前余额
	 */
	public void setAmountBefore(BigDecimal amountBefore) {
		this.amountBefore = amountBefore;
	}

	/**
	 * 获取交易后余额
	 * 
	 * @return amountAfter 交易后余额
	 */
	public BigDecimal getAmountAfter() {
		return amountAfter;
	}
  	
	/**
	 * 设置交易后余额
	 * 
	 * @param amountAfter 交易后余额
	 */
	public void setAmountAfter(BigDecimal amountAfter) {
		this.amountAfter = amountAfter;
	}

	/**
	 * 获取交易备注
	 * 
	 * @return remarks 交易备注
	 */
	public String getRemarks() {
		return remarks;
	}
  	
	/**
	 * 设置交易备注
	 * 
	 * @param remarks 交易备注
	 */
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	/**
	 * 获取交易时间
	 * 
	 * @return createdTime 交易时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置交易时间
	 * 
	 * @param createdTime 交易时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取企业id
	 * 
	 * @return companyId 企业id
	 */
	public String getCompanyId() {
		return companyId;
	}
  	
	/**
	 * 设置企业id
	 * 
	 * @param companyId 企业id
	 */
	public void setCompanyId(String companyId) {
		this.companyId = companyId;
	}

	/**
	 * 获取企业名称
	 * 
	 * @return companyName 企业名称
	 */
	public String getCompanyName() {
		return companyName;
	}
  	
	/**
	 * 设置企业名称
	 * 
	 * @param companyName 企业名称
	 */
	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}

	/**
	 * 获取第三方商户号，与第三方商户号发生交易时存在，示例：微信商户号 wx_1501780391，微信服务商商户号 wx_1505108951_1533645041，支付宝商户号：ali_2088331430099501
	 * 
	 * @return thirdMchId 第三方商户号，与第三方商户号发生交易时存在，示例：微信商户号 wx_1501780391，微信服务商商户号 wx_1505108951_1533645041，支付宝商户号：ali_2088331430099501
	 */
	public String getThirdMchId() {
		return thirdMchId;
	}
  	
	/**
	 * 设置第三方商户号，与第三方商户号发生交易时存在，示例：微信商户号 wx_1501780391，微信服务商商户号 wx_1505108951_1533645041，支付宝商户号：ali_2088331430099501
	 * 
	 * @param thirdMchId 第三方商户号，与第三方商户号发生交易时存在，示例：微信商户号 wx_1501780391，微信服务商商户号 wx_1505108951_1533645041，支付宝商户号：ali_2088331430099501
	 */
	public void setThirdMchId(String thirdMchId) {
		this.thirdMchId = thirdMchId;
	}

    public String toString() {
		return new StringBuilder().append("MemberTradeEntity{").
			append("id=").append(id).
			append(",memberId=").append(memberId).
			append(",memberWalletId=").append(memberWalletId).
			append(",busdId=").append(busdId).
			append(",merchantId=").append(merchantId).
			append(",merchantName=").append(merchantName).
			append(",memberCardId=").append(memberCardId).
			append(",orderNo=").append(orderNo).
			append(",currencyType=").append(currencyType).
			append(",type=").append(type).
			append(",amount=").append(amount).
			append(",amountBefore=").append(amountBefore).
			append(",amountAfter=").append(amountAfter).
			append(",remarks=").append(remarks).
			append(",createdTime=").append(createdTime).
			append(",companyId=").append(companyId).
			append(",companyName=").append(companyName).
			append(",thirdMchId=").append(thirdMchId).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public MemberTradeEntity copy() {
		return new MemberTradeEntity(this);
	}

    /** 交易ID（与分表中的ID保持一致） */
	public static final String COL_ID = "id";

    /** 会员ID */
	public static final String COL_MEMBER_ID = "member_id";

    /** 会员钱包ID */
	public static final String COL_MEMBER_WALLET_ID = "member_wallet_id";

    /** 商圈ID（商户所在的商圈ID) */
	public static final String COL_BUSD_ID = "busd_id";

    /** 商户ID，与商户交易时存在 */
	public static final String COL_MERCHANT_ID = "merchant_id";

    /** 商户名称 */
	public static final String COL_MERCHANT_NAME = "merchant_name";

    /** 悦卡ID，会员使用悦卡交易时存在 */
	public static final String COL_MEMBER_CARD_ID = "member_card_id";

    /** 订单号，订单支付时存在 */
	public static final String COL_ORDER_NO = "order_no";

    /** [全局枚举]币种：0-悦币-YUE_COIN、1-福利卡-YUE_CARD_GRANTED、2-预付卡-YUE_CARD_BOUGHT、3-微信-WECHAT、4-支付宝-ALIPAY */
	public static final String COL_CURRENCY_TYPE = "currency_type";

    /** [枚举]类型：0-充值悦币-RECHARGE_YUE_COIN、1-购买预付卡-BUY_YUE_CARD、2-发放福利卡-GRANT_YUE_CARD、3-订单支付-ORDER_PAY、4-订单退款-ORDER_REFUND、5-悦卡退卡-CARD_REFUND */
	public static final String COL_TYPE = "type";

    /** 交易金额（正数表示收入，负数表示支出） */
	public static final String COL_AMOUNT = "amount";

    /** 交易前余额 */
	public static final String COL_AMOUNT_BEFORE = "amount_before";

    /** 交易后余额 */
	public static final String COL_AMOUNT_AFTER = "amount_after";

    /** 交易备注 */
	public static final String COL_REMARKS = "remarks";

    /** 交易时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 企业id */
	public static final String COL_COMPANY_ID = "company_id";

    /** 企业名称 */
	public static final String COL_COMPANY_NAME = "company_name";

    /** 第三方商户号，与第三方商户号发生交易时存在，示例：微信商户号 wx_1501780391，微信服务商商户号 wx_1505108951_1533645041，支付宝商户号：ali_2088331430099501 */
	public static final String COL_THIRD_MCH_ID = "third_mch_id";
}
